Vector Functions
Range
Erstellt eine Zahlenfolge von Anfang bis Ende, mit optionaler Schrittweite:
Syntax: Start:Step:End or Start:End
Beispiel: 1:5 → {1, 2, 3, 4, 5}
10:-2:2 → {10, 8, 6, 4, 2}
Length
Gibt die Anzahl der Elemente in einem Vektor zurück:
Syntax: Vector.Length()
Beispiel: {1, 1, 2, 3}.Length() → 4
{ 'a', 'b', 'c' }.Length() → 3
Select
Ruft Elemente aus einem Vektor mithilfe von Indizes, Namen oder Bedingungen ab:
Syntax: Vector{Selector}
Beispiel: {4, 5, 6}{2} → 5
{ 'a': 1, 'b': 2 }{'b'} → 2
{10, 20, 30}{ vector > 15 } → {20, 30}
Join
Kombiniert mehrere Elemente zu einem Vektor:
Syntax: Join(Item1, Item2, ...)
Beispiel: Join(0, {1, 2}) → {0, 1, 2}
Beispiel: Join('a', {'b', 'c'}) → {'a', 'b', 'c'}
Flatten
Entfernt die Verschachtelung und flacht einen Vektor auf eine Ebene ab:
Syntax: Vector.Flatten()
Beispiel: { {1, 2}, {3} }.Flatten() → {1, 2, 3}
{ { {1} } }.Flatten() → {1}
Unique
Entfernt Duplikate aus einem Vektor:
Syntax: Vector.Unique()
Beispiel: {1, 2, 2, 3}.Unique() → {1, 2, 3}
{'a', 'a', 'b'}.Unique() → {'a', 'b'}
Union
Fügt zwei Vektoren zusammen und entfernt Duplikate:
Syntax: Vector1.Union(Vector2)
Beispiel: {1, 2}.Union({2, 3}) → {1, 2, 3}
{ 'x' }.Union({ 'y', 'z' }) → {'x', 'y', 'z'}
Intersection
Gibt gemeinsame Elemente aus beiden Vektoren zurück:
Syntax: Vector1.Intersection(Vector2)
Beispiel: {1, 2}.Intersection({2, 3}) → {2}
{'a', 'b'}.Intersection({'b', 'c'}) → {'b'}
Difference
Gibt für jeden Vektor eindeutige Elemente zurück:
Syntax: Vector1.Difference(Vector2)
Beispiel: {1, 2}.Difference({2, 3}) → {1, 3}
{'a', 'b'}.Difference({'b', 'c'}) → {'a', 'c'}
Sort
Sortiert einen Vektor in aufsteigender Reihenfolge:
Syntax: Vector.Sort()
Beispiel: {4, 1, 3}.Sort() → {1, 3, 4}
{8, -2, 0}.Sort() → {-2, 0, 8}
Reverse
Kehrt die Reihenfolge der Elemente um:
Syntax: Vector.Reverse()
Beispiel: {4, 5, 6}.Reverse() → {6, 5, 4}
{'x', 'y', 'z'}.Reverse() → {'z', 'y', 'x'}
{true, false}.Reverse() → {false, true}
Sample
Wählt zufällig Elemente aus einem Vektor aus:
Syntax: Vector.Sample(size, allowRepeats=False)
Beispiel: {10, 20, 30}.Sample(2) → {30, 10}
{1, 2, 3}.Sample(2, true) → {2, 2}
{1, 2, 3, 4}.Sample(3) → e.g., {1, 3, 4}
IndexOf
Findet die Position eines Elements:
Syntax: Vector.IndexOf(element)
Beispiel: {5, 10, 15}.IndexOf(10) → 2
{'red', 'blue'}.IndexOf('green') → 0
{7, 8, 7}.IndexOf(7) → 1
Contains
Überprüft, ob ein Vektor einen Wert enthält:
Syntax: Vector.Contains(element)
Beispiel: {100, 200}.Contains(100) → true
{1, 2, 3}.Contains(0) → false
{}.Contains(1) → false
Repeat
Erzeugt einen Vektor durch Wiederholung eines Ausdrucks:
Syntax: Repeat(expression, times)
Beispiel: Repeat(x+1, 3) → {2, 3, 4}
Repeat(x*2, 4) → {2, 4, 6, 8}
Repeat('Item ' + key, {'id1', 'id2'}) → {'id1': 'Item id1', 'id2': 'Item id2'}
Map
Wendet eine Funktion auf jedes Vektorelement an:
Syntax: Vector.Map(function)
Beispiel: {1, 2, 3}.Map(x + 1) → {2, 3, 4}
{'a': 1, 'b': 2}.Map(x*10) → {'a': 10, 'b': 20}
{'x': 5}.Map(key + '=' + x) → {'x': 'x=5'}
Filter
Gibt Elemente zurück, die einer Bedingung entsprechen:
Syntax: Vector.Filter(condition)
Beispiel: {1, 2, 3, 4}.Filter(x > 2) → {3, 4}
{'a': 5, 'b': 0}.Filter(x > 0) → {'a': 5}
{10, 15, 20}.Filter(x mod 10 == 0) → {10, 20}
Keys
Ruft die Schlüsselwerte aus einem benannten Vektor ab:
Syntax: Vector.Keys()
Beispiel: {'x': 1, 'y': 2}.Keys() → {'x', 'y'}
{'temp': 30}.Keys() → {'temp'}
Values
Ruft die Werte aus einem Vektor ab:
Syntax: Vector.Values()
Beispiel: {'a': 10, 'b': 20}.Values() → {10, 20}
{1, 2, 3}.Values() → {1, 2, 3}
Lookup
Findet ein Ergebnis basierend auf der Eingabe und interpoliert bei Bedarf:
Syntax: Lookup(value, valuesVector, resultsVector)
Beispiel: Lookup(3, {1, 5}, {10, 50}) → 30
Lookup(2, {2, 4}, {20, 40}) → 20
Lookup(6, {5, 10}, {100, 200}) → 120
ConverterTable
Gibt x/y-Wertpaare von einem Konverter zurück:
Syntax: ConverterTable([Converter])
Beispiel: ConverterTable([Speed]) → { {x: 0, y: 0}, {x: 1, y: 100} }
ConverterTable([Temp]){*, "x"} → {0, 1}
ConverterTable([Temp]){*, "y"} → {0, 100}